Milk-V Duo
Milk-V Duo | Extremely Cost-Effective Ultra-Compact Embedded Linux Development Platforms
https://milkv.io/docs/duo/pinout.webp
- CVITEK CV1800B (C906@1Ghz + C906@700MHz)
- Dual RV64 Core up to 1GHz
- 64MB RAM
- Provides 10/100Mbps Ethernet via optional add-on board
- Technology supports running both Linux and RTOS
Linuxが動くのでSBCというくくりで良いのかな?inajob.icon
とりあえず入手したinajob.icon
気になっていること
ブートにかかる時間
電源投入から青色LEDがちかちかするまでに9秒くらいかかる
ストップウォッチで電源ONからLチカが始まるまでの時間を計測した
おそらくこのLEDがチカチカするのがユーザプログラムが動いているということ
PCとの接続がRNDISしか案内されていないので、起動時のログをリアルタイムにみる方法がまだ不明
ポメラみたいなものを自作したいにほかのSBCの起動時間も書かれている
Raspberry Piの方が早いかなという感じ
デフォルトのイメージなので高速化のチューニングとかはできるかもしれない
消費電力
ブートが遅くても消費電力が少なければつけっぱなしという手もありそう?
方法を考える
カメラ用のコネクタが有りIPカメラみたいなものを想定しているっぽい
日本語情報
RISC-Vボード Milk-V Duoを使ってみる1
Milk-V Duo 手にして15分でLチカまで #Linux - Qiita
起動ログ
code: log
root@milkv-duo~# dmesg
0.000000 Linux version 5.10.4-tag- (ubuntu@linux) (riscv64-unknown-linux-musl-gcc (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 PREEMPT Thu Oct 19 19:08:11 CST 2023
0.000000 earlycon: sbi0 at I/O port 0x0 (options '')
0.000000 printk: bootconsole sbi0 enabled
0.000000 efi: UEFI not found.
0.000000 Ion: Ion memory setup at 0x0000000082473000 size 26 MiB
0.000000 OF: reserved mem: initialized node ion, compatible id ion-region
0.000000 Zone ranges:
0.000000 DMA32 mem 0x0000000080000000-0x0000000083f3ffff
0.000000 Normal empty
0.000000 Movable zone start for each node
0.000000 Early memory node ranges
0.000000 node 0: mem 0x0000000080000000-0x0000000083f3ffff
0.000000 Initmem setup node 0 mem 0x0000000080000000-0x0000000083f3ffff
0.000000 On node 0 totalpages: 16192
0.000000 DMA32 zone: 222 pages used for memmap
0.000000 DMA32 zone: 0 pages reserved
0.000000 DMA32 zone: 16192 pages, LIFO batch:3
0.000000 SBI specification v0.3 detected
0.000000 SBI implementation ID=0x1 Version=0x9
0.000000 SBI v0.2 TIME extension detected
0.000000 SBI v0.2 IPI extension detected
0.000000 SBI v0.2 RFENCE extension detected
0.000000 riscv: ISA extensions acdfimsuv
0.000000 riscv: ELF capabilities acdfimv
0.000000 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
0.000000 pcpu-alloc: 0 0
0.000000 Built 1 zonelists, mobility grouping on. Total pages: 15970
0.000000 Kernel command line: root=/dev/mmcblk0p2 rootwait rw console=ttyS0,115200 earlycon=sbi loglevel=9 riscv.fwsz=0x80000
0.000000 Dentry cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
0.000000 Inode-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
0.000000 Sorting __ex_table...
0.000000 mem auto-init: stack:off, heap alloc:off, heap free:off
0.000000 Memory: 29084K/64768K available (3869K kernel code, 468K rwdata, 1699K rodata, 152K init, 206K bss, 35684K reserved, 0K cma-reserved)
0.000000 SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
0.000000 rcu: Preemptible hierarchical RCU implementation.
0.000000 rcu: RCU event tracing is enabled.
0.000000 Trampoline variant of Tasks RCU enabled.
0.000000 rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
0.000000 NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
0.000000 riscv-intc: 64 local interrupts mapped
0.000000 plic: interrupt-controller@70000000: mapped 101 interrupts with 1 handlers for 2 contexts.
0.000000 random: get_random_bytes called from start_kernel+0x2e0/0x41c with crng_init=0
0.000000 riscv_timer_init_dt: Registering clocksource cpuid 0 hartid 0
0.000000 clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
0.000010 sched_clock: 64 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
0.008423 Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=100000)
0.019129 pid_max: default: 4096 minimum: 301
0.024022 Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
0.031446 Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
0.041077 ASID allocator initialised with 65536 entries
0.046796 rcu: Hierarchical SRCU implementation.
0.052180 EFI services will not be available.
0.057266 devtmpfs: initialized
0.066767 early_time_log: do_initcalls: 4654559us
0.072436 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
0.082489 futex hash table entries: 16 (order: -4, 384 bytes, linear)
0.089462 pinctrl core: initialized pinctrl subsystem
0.095371 NET: Registered protocol family 16
0.100437 DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
0.107774 DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
0.116642 thermal_sys: Registered thermal governor 'step_wise'
0.132112 OF: /gpio@03020000/gpio-controller@0: could not find phandle
0.145331 OF: /gpio@03021000/gpio-controller@1: could not find phandle
0.152321 OF: /gpio@03022000/gpio-controller@2: could not find phandle
0.159309 OF: /gpio@03023000/gpio-controller@3: could not find phandle
0.166292 OF: /gpio@05021000/gpio-controller@4: could not find phandle
0.175087 clk reset: nr_reset=64 resource_size=8
0.180665 get audio clk=24576000
0.184209 cvitek-i2s-subsys 4108000.i2s_subsys: Set clk_sdma_aud0~3 to 24576000
0.203859 dw_dmac 4330000.dma: CVITEK DMA Controller, 8 channels, probe done!
0.212435 SCSI subsystem initialized
0.216756 usbcore: registered new interface driver usbfs
0.222534 usbcore: registered new interface driver hub
0.228122 usbcore: registered new device driver usb
0.236844 Ion: ion_parse_dt_heap_common: id 0 type 2 name carveout align 1000
0.244789 Ion: rmem_ion_device_init: heap carveout base 0x0000000082473000 size 0x0000000001acd000 dev (____ptrval____)
0.256075 ion_carveout_heap_create, size=0x1acd000
0.261381 cvi_get_rtos_ion_size, rtos ion_size get:0x0
0.396877 platform carveout: ion add heap id 0, type 2, base 0x82473000, size 0x1acd000
0.405878 Advanced Linux Sound Architecture Driver Initialized.
0.413536 clocksource: Switched to clocksource riscv_clocksource
0.422126 NET: Registered protocol family 2
0.427813 tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
0.436530 TCP established hash table entries: 512 (order: 0, 4096 bytes, linear)
0.444326 TCP bind hash table entries: 512 (order: 0, 4096 bytes, linear)
0.451590 TCP: Hash tables configured (established 512 bind 512)
0.458196 UDP hash table entries: 128 (order: 0, 4096 bytes, linear)
0.464966 UDP-Lite hash table entries: 128 (order: 0, 4096 bytes, linear)
0.472424 NET: Registered protocol family 1
0.477631 RPC: Registered named UNIX socket transport module.
0.483751 RPC: Registered udp transport module.
0.488630 RPC: Registered tcp transport module.
0.493551 RPC: Registered tcp NFSv4.1 backchannel transport module.
0.502843 Initialise system trusted keyrings
0.507748 workingset: timestamp_bits=62 max_order=13 bucket_order=0
0.521613 squashfs: version 4.0 (2009/01/31) Phillip Lougher
0.528693 jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
0.535878 Key type asymmetric registered
0.540098 Asymmetric key parser 'x509' registered
0.551413 Serial: 8250/16550 driver, 5 ports, IRQ sharing disabled
0.559973 printk: console ttyS0 disabled
0.564498 4140000.serial: ttyS0 at MMIO 0x4140000 (irq = 15, base_baud = 1562500) is a 16550A
0.573578 printk: console ttyS0 enabled
0.582163 printk: bootconsole sbi0 disabled
0.592441 41c0000.serial: ttyS4 at MMIO 0x41c0000 (irq = 16, base_baud = 1562500) is a 16550A
0.604948 cvi-spif 10000000.cvi-spif: unrecognized JEDEC id bytes: 00 00 00 00 00 00
0.613200 cvi-spif 10000000.cvi-spif: device scan failed
0.618929 cvi-spif 10000000.cvi-spif: unable to setup flash chip
0.632043 libphy: Fixed MDIO Bus: probed
0.636923 bm-dwmac 4070000.ethernet: IRQ eth_wake_irq not found
0.643287 bm-dwmac 4070000.ethernet: IRQ eth_lpi not found
0.649270 bm-dwmac 4070000.ethernet: Hash table entries set to unexpected value 0
0.657351 bm-dwmac 4070000.ethernet: no reset control found
0.663600 bm-dwmac 4070000.ethernet: User ID: 0x10, Synopsys ID: 0x37
0.670519 bm-dwmac 4070000.ethernet: DWMAC1000
0.675424 bm-dwmac 4070000.ethernet: DMA HW capability register supported
0.682648 bm-dwmac 4070000.ethernet: RX Checksum Offload Engine supported
0.689872 bm-dwmac 4070000.ethernet: COE Type 2
0.694763 bm-dwmac 4070000.ethernet: TX Checksum insertion supported
0.701545 bm-dwmac 4070000.ethernet: Normal descriptors
0.707153 bm-dwmac 4070000.ethernet: Ring mode enabled
0.712674 bm-dwmac 4070000.ethernet: Enable RX Mitigation via HW Watchdog Timer
0.720437 bm-dwmac 4070000.ethernet: device MAC address 0e:c0:18:77:f1:c4
0.754595 libphy: stmmac: probed
0.759704 bm-dwmac 4070000.ethernet: Cannot get clk_500m_eth!
0.766067 bm-dwmac 4070000.ethernet: Cannot get gate_clk_axi4!
0.773459 dwc2 4340000.usb: axi clk installed
0.778270 dwc2 4340000.usb: apb clk installed
0.783006 dwc2 4340000.usb: 125m clk installed
0.787815 dwc2 4340000.usb: 33k clk installed
0.792532 dwc2 4340000.usb: 12m clk installed
0.797341 dwc2 4340000.usb: EPs: 8, dedicated fifos, 3072 entries in SPRAM
0.805230 dwc2 4340000.usb: DWC OTG Controller
0.810105 dwc2 4340000.usb: new USB bus registered, assigned bus number 1
0.817377 dwc2 4340000.usb: irq 36, io mem 0x04340000
0.823744 hub 1-0:1.0: USB hub found
0.827774 hub 1-0:1.0: 1 port detected
0.833522 usbcore: registered new interface driver usb-storage
0.840223 i2c /dev entries driver
0.846051 sdhci: Secure Digital Host Controller Interface driver
0.852488 sdhci: Copyright(c) Pierre Ossman
0.857017 sdhci-pltfm: SDHCI platform and OF driver helper
0.863177 cvi:sdhci_cvi_probe
0.913553 mmc0: SDHCI controller on 4310000.cv-sd 4310000.cv-sd using ADMA 64-bit
0.921720 cvi_proc_init cvi_host 0x(____ptrval____)
0.927706 usbcore: registered new interface driver usbhid
0.937565 usbhid: USB HID core driver
0.943463 cvitek-i2s 4100000.i2s: cvi_i2s_probe
0.953799 cvitek-i2s 4130000.i2s: cvi_i2s_probe
0.959526 cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
0.966649 cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
0.975253 cvitekaadc 300a100.adc: cvitekaadc_probe
0.986214 cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
0.993698 cvitekadac 300a000.dac: cvitekadac_probe
0.999290 cvitekadac_probe gpio_is_valid mute_pin_l
1.005852 NET: Registered protocol family 10
1.012031 Segment Routing with IPv6
1.016083 NET: Registered protocol family 17
1.021047 Loading compiled-in X.509 certificates
1.064644 mmc0: new high speed SDHC card at address 59b4
1.072648 cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
1.080134 mmcblk0: mmc0:59b4 3.73 GiB
1.084819 cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
1.096926 mmcblk0: p1 p2 p3
1.105676 cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
1.118756 cfg80211: Loading compiled-in X.509 certificates for regulatory database
1.129777 cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
1.136864 cfg80211: failed to load regulatory.db
1.142128 ALSA device list:
1.145437 dw-apb-uart 4140000.serial: forbid DMA for kernel console
1.185181 random: fast init done
2.081933 EXT4-fs (mmcblk0p2): recovery complete
2.089125 EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
2.097623 VFS: Mounted root (ext4 filesystem) on device 179:2.
2.106314 devtmpfs: mounted
2.109622 Freeing unused kernel memory: 152K
2.114248 Kernel memory protection not selected by kernel config.
2.120770 Run /sbin/init as init process
2.125040 with arguments:
2.128140 /sbin/init
2.130969 with environment:
2.134247 HOME=/
2.136687 TERM=linux
2.139515 early_time_log: run_init_process: 6727312us
2.198902 EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
2.351902 random: dd: uninitialized urandom read (512 bytes read)
2.485428 random: dhcpcd: uninitialized urandom read (112 bytes read)
2.572774 bm-dwmac 4070000.ethernet eth0: PHY stmmac-0:00 driver Generic PHY (irq=POLL)
2.597610 dwmac1000: Master AXI performs any burst length
2.604580 bm-dwmac 4070000.ethernet eth0: No Safety Features support found
2.613195 bm-dwmac 4070000.ethernet eth0: IEEE 1588-2002 Timestamp supported
2.621889 bm-dwmac 4070000.ethernet eth0: configuring for phy/rmii link mode
2.838822 random: dnsmasq: uninitialized urandom read (128 bytes read)
2.874763 cv180x_sys: bad vermagic: kernel tainted.
2.880052 Disabling lock debugging due to kernel taint
2.885969 cv180x_sys: loading out-of-tree module taints kernel.
2.910443 res-reg: start: 0xa0c8000, end: 0xa0c801f, virt-addr(ffffffd0040c9000).
2.918920 CVITEK CHIP ID = 22
2.930813 cvi_rtos_cmdqu_probe start ---
2.935220 name=1900000.rtos_cmdqu
2.939505 res-reg: start: 0x1900000, end: 0x1900fff, virt-addr(ffffffd004228000).
2.947858 cvi_rtos_cmdqu_probe DONE
2.952196 cvi_spinlock_init success
3.169562 RTOS_CMDQU_SEND_WAIT timeout
3.173661 SYS_CMD_INFO_LINUX_INIT_DONE fail
3.178881 communicate with rtos fail
3.195241 cif a0c2000.cif: cam0 clk installed
3.200056 cif a0c2000.cif: cam1 clk installed
3.205241 cif a0c2000.cif: vip_sys_2 clk installed
3.210723 cif a0c2000.cif: clk_mipimpll clk installed (____ptrval____)
3.217985 cif a0c2000.cif: clk_disppll clk installed (____ptrval____)
3.225152 cif a0c2000.cif: clk_fpll clk installed (____ptrval____)
3.232047 cif a0c2000.cif: (0) res-reg: start: 0xa0c2000, end: 0xa0c3fff.
3.239533 cif a0c2000.cif: virt-addr((____ptrval____))
3.245423 cif a0c2000.cif: (1) res-reg: start: 0xa0d0000, end: 0xa0d0fff.
3.252922 cif a0c2000.cif: virt-addr((____ptrval____))
3.258813 cif a0c2000.cif: (2) res-reg: start: 0xa0c4000, end: 0xa0c5fff.
3.266302 cif a0c2000.cif: virt-addr((____ptrval____))
3.272192 cif a0c2000.cif: (3) res-reg: start: 0x3001c30, end: 0x3001c5f.
3.279679 cif a0c2000.cif: virt-addr((____ptrval____))
3.285596 cif a0c2000.cif: no pad_ctrl for cif
3.290732 cif a0c2000.cif: request irq-26 as cif-irq0
3.296515 cif a0c2000.cif: request irq-27 as cif-irq1
3.302271 cif a0c2000.cif: rst_pin = 424, pol = 1
3.314373 snsr_i2c snsr_i2c: i2c:-------hook 0
3.319467 snsr_i2c snsr_i2c: i2c:-------hook 1
3.324862 snsr_i2c snsr_i2c: i2c:-------hook 2
3.330108 snsr_i2c snsr_i2c: i2c:-------hook 3
3.335348 snsr_i2c snsr_i2c: i2c:-------hook 4
3.383779 vi_core_probe:203(): res-reg: start: 0xa000000, end: 0xa07ffff, virt-addr(ffffffd004400000).
3.393679 vi_core_probe:216(): irq(28) for isp get from platform driver.
3.401813 vi_tuning_buf_setup:253(): tuning fe_addr0=0x817ff490, be_addr0=0x817f7290, post_addr0=0x817e0000
3.412743 vi_tuning_buf_setup:253(): tuning fe_addr1=0x81cff490, be_addr1=0x81cf7290, post_addr1=0x81ce0000
3.424044 vi_tuning_buf_setup:253(): tuning fe_addr2=0x81c1f490, be_addr2=0x81c17290, post_addr2=0x81c00000
3.435166 sync_task_init:177(): sync_task_init vi_pipe 0
3.441128 sync_task_init:177(): sync_task_init vi_pipe 1
3.447076 sync_task_init:177(): sync_task_init vi_pipe 2
3.453581 vi_core_probe:252(): isp registered as cvi-vi
3.509220 cvi_dwa_probe:487(): done with rc(0).
3.538655 cv180x-cooling cv180x_cooling: elems of dev-freqs=6
3.544933 cv180x-cooling cv180x_cooling: dev_freqs0: 850000000 500000000
3.552705 cv180x-cooling cv180x_cooling: dev_freqs1: 425000000 375000000
3.560364 cv180x-cooling cv180x_cooling: dev_freqs2: 425000000 300000000
3.568068 cv180x-cooling cv180x_cooling: Cooling device registered: cv180x_cooling
3.604309 jpu ctrl reg pa = 0xb030000, va = (____ptrval____), size = 256
3.611980 end jpu_init result = 0x0
3.730207 cvi_vc_drv_init result = 0x0
3.744783 sh (168): drop_caches: 3
3.956081 using random self ethernet address
3.956099 using random host ethernet address
3.981566 dwc2 4340000.usb: new device is high-speed
4.008475 usb0: HOST MAC fa:b0:97:60:e6:9b
4.008830 usb0: MAC e2:11:9c:2e:b5:41
4.008889 dwc2 4340000.usb: bound driver configfs-gadget
4.189021 dwc2 4340000.usb: new device is high-speed
4.223201 dwc2 4340000.usb: new address 17
5.013594 IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
41.629613 random: crng init done
41.629631 random: 1 urandom warning(s) missed due to ratelimiting